package logicQuiz

import org.springframework.cloud.contract.spec.Contract

Contract.make {
    request {
        method("GET")
        url("/api/v3/logicQuizzes") {
            queryParameters {
                parameter("page", 1)
                parameter("pageSize", 10)
                parameter("type", "makerId")
                parameter("content", 1)
            }
        }
        headers {
            contentType(applicationJsonUtf8())
            header('id', '21')
        }
    }
    response {
        status(200)
        headers {
            contentType(applicationJsonUtf8())
        }
        body("""
        {
            "content": [{
                "id": 1,
                "hardCount": 4,
                "normalCount": 3,
                "easyCount": 2,
                "timeBoxInMinutes": 1,
                "description": "dddd",
                "exampleCount": 1,
                "quizGroupId": 1,
                "makerId": 1,
                "isAvailable": true,
                "maker": "",
                }],
                "totalElements": 2,
                "size": 10,
                "totalPages": 1,
                "number": 0
            }
        """)
        bodyMatchers {
            jsonPath('$.content[*].id', byRegex(number()))
            jsonPath('$.content[*].hardCount', byRegex(number()))
            jsonPath('$.content[*].normalCount', byRegex(number()))
            jsonPath('$.content[*].easyCount', byRegex(number()))
            jsonPath('$.content[*].timeBoxInMinutes', byRegex(number()))
            jsonPath('$.content[*].description', byRegex("[\\s\\S]+"))
            jsonPath('$.content[*].exampleCount', byRegex(number()))
            jsonPath('$.content[*].quizGroupId', byRegex(number()))
            jsonPath('$.content[*].makerId', byRegex(number()))
            jsonPath('$.content[*].isAvailable', byRegex(anyBoolean()))
            jsonPath('$.content[*].maker', byRegex("[\\s\\S]*"))
            jsonPath('$.totalElements', byRegex(number()))
            jsonPath('$.size', byRegex(number()))
            jsonPath('$.totalPages', byRegex(number()))
            jsonPath('$.number', byRegex(number()))
        }
    }
}
